package com.itany.corejava.code05_数组;

import java.util.Arrays;

/**
 * @author 石小俊
 * @date 2024年01月12日 10:04
 */
public class Test09_二维数组 {

    public static void main(String[] args) {
        test04();
    }

    public static void test01() {
        // 定义方式一:定义一个规则的二维数组
        // 语法:数据类型[][] 变量名 = new 数据类型[m][n]
        // m表示数组的长度为m,n表示数组中每一个元素也是一个数组,且元素数组的长度均为n
        int[][] nums = new int[2][3];
        nums[0][0] = 1;
        nums[0][1] = 2;
        nums[0][2] = 3;
        nums[1][0] = 4;
        nums[1][1] = 5;
        nums[1][2] = 6;
        for (int i = 0; i < nums.length; i++) {
            System.out.println(Arrays.toString(nums[i]));
        }
    }

    public static void test02() {
        // 定义方式二:定义一个不规则的二维数组
        // 语法:数据类型[][] 变量名 = new 数据类型[m][]
        // m表示数组的长度
        int[][] arr = new int[3][];
        // 每一个元素都是一个数组,且在定义时并没有指定长度
        // 因此,在赋值前需要先为元素数组定义指定的长度
        arr[0] = new int[2];
        arr[0][0] = 1;
        arr[0][1] = 2;
        arr[1] = new int[3];
        arr[1][0] = 3;
        arr[1][1] = 4;
        arr[1][2] = 5;
        arr[2] = new int[4];
        arr[2][0] = 6;
        arr[2][1] = 7;
        arr[2][2] = 8;
        arr[2][3] = 9;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(Arrays.toString(arr[i]));
        }
    }

    public static void test03() {
        // 定义方式三:定义二维数组的同时为数组的元素赋值
        // 语法:数据类型[][] 变量名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}}
        int[][] arr = new int[][]{
                {1, 2, 3, 4},
                {5, 6},
                {7, 8, 9, 10, 11, 12},
                {13, 14, 15}
        };
        for (int i = 0; i < arr.length; i++) {
            System.out.println(Arrays.toString(arr[i]));
        }
    }

    public static void test04() {
        // 方式三简写方式
        int[][] arr = {
                {1, 2, 3, 4},
                {5, 6},
                {7, 8, 9, 10, 11, 12},
                {13, 14, 15}
        };
        for (int i = 0; i < arr.length; i++) {
            System.out.println(Arrays.toString(arr[i]));
        }
    }
}
